1. Field of the Invention
The present invention relates, in general, to object-oriented data models in computer architecture, and, more particularly, to software, systems and methods for minimally populating object-oriented inheritance trees.
2. Relevant Background
Classification is the process by which every item in a set of items is assigned a unique class label from a predefined set of class labels. Items could be any real life entities such as documents, people, products, etc., which can be modeled as having a fixed set of attributes or features. The labels could be any meaningful abstraction for the entity being classified. For example {rich, poor} could be the set of class labels for the entity ‘person’.
Many of the classification methods disclosed in published literature are for assigning class labels to a set of data items, and are not specifically designed for populating an existing concept hierarchy. Concept hierarchies can be visualized as tree structures where a child to parent relationship is fixed and well-defined. For example, ‘cars’ and ‘trucks’ are children of ‘vehicle’. Generally ‘IS-A’ or ‘A-Kind-Of’ relationships are maintained, where child is a kind of parent. Each node or class (used synonymously herein) in a concept hierarchy has a label whose prefix is typically the label of its parent. Sibling classes are the set of classes at a single level of the hierarchy that have a common parent (i.e. are immediate descendants of a common ancestor node at the next level in the hierarchy). Concept hierarchies also have a special node (root-node or root-class) which is the ancestor of any node in the hierarchy.
In computer architecture, a Common Information Model (CIM) defines classes of objects containing information about different parts of an enterprise. CIM is an extensible, object-oriented data model and because it is object-oriented, CIM provides abstraction, inheritance, and dependency or association relationships between objects within the model. A CIM object is a representation or model of a managed resource such as a printer, disk drive, or CPU. An extensive discussion on CIM standards can be found at http://www.dmtf.com. CIM makes it comparatively straightforward to track and depict the often complex interdependencies and associations among different managed objects. Such interdependencies may include those between logical network connections and underlying physical devices, or those of an e-commerce transaction and the web and database servers on which it depends.
CIM is defined to be technology and implementation-neutral, but to be useful the model must be mapped into existing repositories and accessed via established transports and interfaces. A CIM object lifecycle includes creation, modification, and deletion. The current art includes many CIM applications that spend an extraordinary amount of time reading and searching for CIM objects and associations. Some CIM classes and associations have long lifecycles while others are highly volatile. The changing nature of the CIM places a tremendous burden on computing resources to update and maintain a current and accurate CIM mapping.
Typically all CIM classes are mapped as abstract classes and subclasses as defined in the CIM schema. The result is a Directory Enabled Networking (DEN) mapping, which provides a natural hierarchy for modeling CIM inheritance and a convenient object class for searching. Once mapped, CIM objects are managed by a CIM Object Manager. When a client application accesses information about an object, the CIM Object Manager contacts either the provider for that object or the CIM Object Manager repository. The CIM Object Manager then facilitates a connection between the application and the resource the client needs to perform its operations.
Current CIM Object Managers tend to include all of the classes in an information model despite being only able to support realistically a fraction of the declared classes. Existing object managers force the supporting infrastructure to pre-populate the information model with class meta-model definitions. Furthermore, different revisions of the model require separate persistence repositories and are also pre-populated. This is a tremendous waste of resources. What is needed are systems and methods that reduce the number of represented information model classes by minimally populating an inheritance tree while still allowing inheritance-based queries.